package fr.mairie.parc.control.demande;

import org.apache.click.control.FieldSet;
import org.apache.click.control.Form;
import org.apache.click.control.TextField;
import org.apache.click.extras.control.DateField;
import org.apache.click.extras.control.IntegerField;

import fr.mairie.parc.domain.Demande;
import fr.mairie.parc.domain.Materiel;

public class DemandeFields {

	private boolean withFields;
	private FieldSet fieldset = new FieldSet("demandeFieldset", "Demande");

	private IntegerField idDemande = new IntegerField("idDemande", "ID");
	private IntegerField numParc = new IntegerField("numParc", "Numéro de parc");
	private TextField marque = new TextField("marque", "Marque");
	private TextField modele = new TextField("modele", "Modéle");
	private DateField date = new DateField("date", "Date");
	private TextField batiment = new TextField("batiment", "Batiment");
	private IntegerField etage = new IntegerField("etage", "Etage");
	private TextField salle = new TextField("salle", "Salle");
	private TextField direction = new TextField("direction", "Direction");
	private TextField service = new TextField("service", "Service");
	private TextField utilisateur = new TextField("utilisateur", "Utilisateur");
	//private TextField typeDemande = new TextField("typeDemande", "Type de la demande");

	public DemandeFields(boolean withFields){

		this.withFields = withFields;

		if (withFields) {
			fieldset.add(idDemande);

		}
		fieldset.add(numParc);
		fieldset.add(marque);
		fieldset.add(modele);
		fieldset.add(date);
		fieldset.add(batiment);
		fieldset.add(etage);
		fieldset.add(salle);
		fieldset.add(direction);
		fieldset.add(service);
		fieldset.add(utilisateur);
		//fieldset.add(typeDemande);
	}

	public void addAll(Form form) {
		form.add(fieldset);
	}

	public void setReadonly(boolean disabled) {
		fieldset.setReadonly(disabled);
	}

	public void getFieldsValues(Demande in) {
		if (withFields) {
			in.setIdDemande(idDemande.getInteger());

		}
		in.setNumParc(numParc.getValue());
		in.setMarque(marque.getValue());
		in.setModele(modele.getValue());
		in.setDate(date.getValue());
		in.setBatiment(batiment.getValue());
		in.setEtage(etage.getValue());
		in.setSalle(salle.getValue());
		in.setDirection(direction.getValue());
		in.setService(service.getValue());
		in.setUtilisateur(utilisateur.getValue());
		//in.setTypeDemande(typeDemande.getValue());
	}

	public void setFieldsValues(Demande src) {
		if (withFields) {
			idDemande.setInteger(src.getIdDemande());

		}

		numParc.setValue(src.getNumParc());
		marque.setValue(src.getMarque());
		modele.setValue(src.getModele());
		date.setValue(src.getDate());
		batiment.setValue(src.getBatiment());
		etage.setValue(src.getEtage());
		salle.setValue(src.getSalle());
		direction.setValue(src.getDirection());
		service.setValue(src.getService());
		utilisateur.setValue(src.getUtilisateur());
		//typeDemande.setValue(src.getTypeDemande());
	}

	public void setNumParcValue (Materiel src) {
		numParc.setInteger(src.getNumParc());
	}

	public void setMarqueValue (Materiel src) {
		marque.setValue(src.getMarque());
	}

	public void setModeleValue (Materiel src) {
		modele.setValue(src.getModele());
	}

	public void setBatimentValue(Demande src) {
		batiment.setValue(src.getBatiment());
	}

	public void setEtageVlaue(Demande src) {
		etage.setValue(src.getEtage());
	}

	public void setSalleValue(Demande src) {
		salle.setValue(src.getSalle());
	}

	public void setDirectionValue(Demande src) {
		direction.setValue(src.getDirection());
	}

	public void setServiceValue(Demande src) {
		service.setValue(src.getService());
	}

	public void setUtilisateurValue(Demande src) {
		utilisateur.setValue(src.getUtilisateur());
	}

	public FieldSet getFieldset() {
		return fieldset;
	}

	public void setFieldset(FieldSet fieldset) {
		this.fieldset = fieldset;
	}

	public TextField getUtilisateur() {
		return utilisateur;
	}

	public void setUtilisateur(TextField utilisateur) {
		this.utilisateur = utilisateur;
	}
}
